Modern communications networks are comprised of nodes that transport data through the network via links that connect the nodes. The nodes may include routers, switches, bridges, or combinations thereof that transport the individual data packets or frames through the network over links between the nodes. The data packets may be forwarded on pre-established paths that include nodes and links. Different path protection schemes may be used to protect link or node failures on a path and avoid substantial data loss. Some path protection schemes handle single link failures, where a working path is assigned a backup path that is reserved in case of failures in the working path. Other more stringent schemes may be needed to handle dual link failures, where the working path is assigned a primary backup path that is reserved in case of failures in the working path, and a secondary backup path that is reserved in case of additional failures in the primary backup path. In some cases, at least some portions of the backup paths may share some network resource capacity (e.g., bandwidth) to save resources/cost in the network. Further, the backup paths may not be completely disjoints. When setting up such partially disjoint back up paths for link/path failures, there is a need for a scheme that efficiently allocates shared resources between the paths, also referred to as spare capacity allocation.